<?php
namespace Mouta\AdminBundle\Admin;

use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use FOS\UserBundle\Model\UserManagerInterface;

use Mouta\AmistateBundle\Entity\Usuario;

class UsuarioAdmin extends Admin
{
	protected $userManager;
	
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->add('username')
            ->add('usernameCanonical')
            ->add('email')
            ->add('emailCanonical')
            ->add('enabled', 'sonata_type_boolean',
					array('choices'   => 
						array(
							true  => 'label_type_yes',
							false   => 'label_type_no'
						)
					)
			)
            ->add('password')
            ->add('lastLogin')
            //->add('locked')
            ->add('fb_id')
            ->add('nombre')
            ->add('apellido')
            ->add('slug')
            ->add('sexo','choice', array('choices' => array(true=>'Mujer',false=>'Hombre')  ))
            ->add('busco','choice', array('choices' => array(true=>'Mujer',false=>'Hombre')  ))
            //->add('cumple')
			->add('ubicacion','ubicacion', array(
                'label'  => 'Ubicación',
                'mapped' => false
            ))
            ->add('pais')
            ->add('provincia')
            ->add('localidad')
            ->add('seo_pais')
            ->add('seo_provincia')
            ->add('seo_localidad')
            ->add('lat')
            ->add('lng')
            ->add('para','choice', array('choices' => Usuario::getOpcionesPara()  ))
            ->add('puntos')
            ->add('votos')
            ->add('credito')
            ->add('reindexar', 'sonata_type_boolean',
					array('choices'   => 
						array(
							true  => 'label_type_yes',
							false   => 'label_type_no'
						)
					)
			)
            ->add('recibomail', 'sonata_type_boolean',
					array('choices'   => 
						array(
							true  => 'label_type_yes',
							false   => 'label_type_no'
						)
					)
			)
            ->add('en_header_at')
            ->add('listar', 'sonata_type_boolean',
					array('choices'   => 
						array(
							true  => 'label_type_yes',
							false   => 'label_type_no'
						)
					)
			)
            //->add('ultima_actividad')
            ->add('deletedAt')
            ->add('created')
            ->add('updated')
            ->add('altura','choice', array('choices' => Usuario::getOpcionesAltura(),'required' => false  ))
            ->add('hijos','choice', array('choices' => Usuario::getOpcionesHijos(),'required' => false  ))
            ->add('estudios','choice', array('choices' => Usuario::getOpcionesEstudios(),'required' => false  ))
            ->add('religion','choice', array('choices' => Usuario::getOpcionesReligion(),'required' => false  ))
            ->add('fumas','choice', array('choices' => Usuario::getOpcionesFumas(),'required' => false  ))
            ->add('bebes','choice', array('choices' => Usuario::getOpcionesBebes(),'required' => false  ))
            ->add('fisico','choice', array('choices' => Usuario::getOpcionesFisico(),'required' => false  ))
            ->add('descripcion')
            ->add('musica')
            ->add('peliculas')
            ->add('libros')
            ->add('tele')
            ->add('deportes')
            ->add('estado_civil','choice', array('choices' => Usuario::getOpcionesEstadoCivil(),'required' => false  ))
            ->add('color_pelo','choice', array('choices' => Usuario::getOpcionesColorPelo(),'required' => false  ))
            ->add('nacionalidad')
            ->add('trabajo')
            ->add('color_ojos','choice', array('choices' => Usuario::getOpcionesColorOjos(),'required' => false  ))
            ->add('vives','choice', array('choices' => Usuario::getOpcionesVives(),'required' => false  ))
            ->add('frase')
            ->add('buscas')
            ->add('comida')
            ->add('cita_ideal')
            ->add('web')
            ->add('msn')
            ->add('yahoo')
            ->add('facebook')
            ->add('twitter')
            ->add('webcam')
            ->add('telefono')
            ->add('animales')
            ->add('idioma')
			->add('verificado', 'sonata_type_boolean',
					array('choices'   => 
						array(
							true  => 'label_type_yes',
							false   => 'label_type_no'
						)
					)
			)
			->add('images','sonata_type_collection', array(), array(
                'edit' => 'inline',
                'inline' => 'table',
                'sortable'  => 'position'
            ))
        ;
    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            ->add('id','doctrine_orm_number')
            ->add('nombre')
            ->add('email')
            ->add('slug')
            ->add('enabled')
            ->add('verificado')
            ->add('lastLogin')
            ->add('ip')
        ;
    }

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('id')
            ->add('imageDefault','string span2', array('template' => 'AdminBundle:UserAdmin:image.html.twig'))
            ->add('email')
            ->add('nombre')
            ->add('enabled')
            ->add('verificado')
            ->add('descripcion')
            ->add('pais')
            ->add('lastLogin')
            ->add('slug')
            ->add('sexo','string', array('template' => 'AdminBundle:UserAdmin:sexo.html.twig'))
        ;
    }
	
	public function preUpdate($user)
    {
        
    }
	
	public function postUpdate($user)
    {
        $this->userManager->updateUser($user);
    }

    public function setUserManager($userManager)
    {
        $this->userManager = $userManager;
    }

    /**
     * @return UserManagerInterface
     */
    public function getUserManager()
    {
        return $this->userManager;
    }
	
}